home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / perl5 / 5.8.7 / Digest / file.pm < prev   
Text File  |  2006-04-25  |  2KB  |  86 lines

  1. package Digest::file;
  2.  
  3. use strict;
  4.  
  5. use Exporter ();
  6. use Carp qw(croak);
  7. use Digest ();
  8.  
  9. use vars qw($VERSION @ISA @EXPORT_OK);
  10.  
  11. $VERSION = "0.01";
  12. @ISA = qw(Exporter);
  13. @EXPORT_OK = qw(digest_file_ctx digest_file digest_file_hex digest_file_base64);
  14.  
  15. sub digest_file_ctx {
  16.     my $file = shift;
  17.     croak("No digest algorithm specified") unless @_;
  18.     local *F;
  19.     open(F, $file) || croak("Can't open '$file': $!");
  20.     binmode(F);
  21.     my $ctx = Digest->new(@_);
  22.     $ctx->addfile(*F);
  23.     close(F);
  24.     return $ctx;
  25. }
  26.  
  27. sub digest_file {
  28.     digest_file_ctx(@_)->digest;
  29. }
  30.  
  31. sub digest_file_hex {
  32.     digest_file_ctx(@_)->hexdigest;
  33. }
  34.  
  35. sub digest_file_base64 {
  36.     digest_file_ctx(@_)->b64digest;
  37. }
  38.  
  39. 1;
  40.  
  41. __END__
  42.  
  43. =head1 NAME
  44.  
  45. Digest::file - Calculate digests of files
  46.  
  47. =head1 SYNOPSIS
  48.  
  49.   # Poor mans "md5sum" command
  50.   use Digest::file qw(digest_file_hex);
  51.   for (@ARGV) {
  52.       print digest_file_hex($_, "MD5"), "  $_\n";e
  53.   }
  54.  
  55. =head1 DESCRIPTION
  56.  
  57. This module provide 3 convenience functions to calculate the digest
  58. of files.  The following functions are provided:
  59.  
  60. =over
  61.  
  62. =item digest_file( $file, $algorithm, [$arg,...] )
  63.  
  64. This function will calculate and return the binary digest of the bytes
  65. of the given file.  The function will croak if it fails to open or
  66. read the file.
  67.  
  68. The $algorithm is a string like "MD2", "MD5", "SHA-1", "SHA-512".
  69. Additional arguments are passed to the constructor for the
  70. implementation of the given algorithm.
  71.  
  72. =item digest_file_hex( $file, $algorithm, [$arg,...] )
  73.  
  74. Same as digest_file(), but return the digest in hex form.
  75.  
  76. =item digest_file_base64( $file, $algorithm, [$arg,...] )
  77.  
  78. Same as digest_file(), but return the digest as a base64 encoded
  79. string.
  80.  
  81. =back
  82.  
  83. =head1 SEE ALSO
  84.  
  85. L<Digest>
  86.